#!/usr/bin/env bash
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if [ -z $(command -v yunzai-api) ];then
echo -e "$0: 脚本位置不在PATH环境，拒绝运行"
exit
fi
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
pip_repo=https://pypi.mirrors.ustc.edu.cn/simple/
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#-_-# 从功能上与yunzai关系不大,调用收录的API,以及...(访问)百度百度(网页)?
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#从主脚本获取参数
versions=1.3.1
times=2023/10/25
main=( $(yunzai readme) )
version=${main[1]}
time=${main[2]}
cmd=$(yunzai dev cmd notfound)
os=$(yunzai dev os notfound)
APP=$BASH_SANDBOX_ROOTDIR/run/user/python
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FILE_1_Dir=$APP/StarFire_Spark_API
FILE_1=$FILE_1_Dir/Main.py
CFG_1=$FILE_1_Dir/Config.json
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FILE_2_Dir=$APP/Youdao_Translation_API
FILE_2=$FILE_2_Dir/Main.py
CFG_2=$FILE_2_Dir/Config.json
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[ ! -d $APP ]&&mkdir -p $APP
pyinit
pyfs=$(pyinit --list)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#前置
app_1(){
echo "请按提示输入配置信息，任意一项输入retry均可重新配置"
read -p "请输入APPID：" appid
[ -z $appid ]&&app_1
case $appid in
retry)app_1;;
esac
read -p "请输入APISecret：" apisecret
[ -z $apisecret ]&&app_1
case $apisecret in
retry)app_1;;
esac
read -p "请输入APIKey：" apikey
[ -z $apikey ]&&app_1
case $apikey in
retry)app_1;;
esac
read -p "请选择星火大模型版本[1/2/3] " ver
case $ver in
1)version=v1.1;domain=general;;
2)version=v2.1;domain=generalv2;;
3)version=v3.1;domain=generalv3;;
retry)app_1;;
*)app_1;;
esac
echo "正在生成配置文件..."
echo -e "{
    \"appid\": \"$appid\",
    \"secret\": \"$apisecret\",
    \"key\": \"$apikey\",
    \"uid\": \"$(( RANDOM % (999999999 - 9999)))\",
    \"domain\": \"$domain\",
    \"version\": \"$version\"
}" > $CFG_1
echo "配置完成。"
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apiapp_1(){ if [ ! -f $FILE_1 ];then yunzai-file opt StarFire_Spark_API $FILE_1_Dir;fi;}
app-1(){
source $pyfs
echo "已进入python虚拟环境。"
echo "正在导入python-websocket库..."
if pip install websocket websocket-client==0.55.0 -i $pip_repo;then
pip install websocket-client==0.57.0 -i $pip_repo
echo "python-websocket库安装成功"
else
echo "python-websocket库安装失败，请检查python或其虚拟环境是否被正确安装"
exit
fi
echo "正在导入python脚本..."
mkdir $FILE_1_Dir
if apiapp_1;then
echo -e "$FILE_1 导入成功"
else
echo -e "$FILE_1 导入失败"
exit
fi
echo "Spark_API对接脚本部署完成。"
echo "科大讯飞大语言模型：讯飞星火"
read -p "你是否体验过星火AI？[Y/n] " yesno
case $yesno in
N|n)clear;echo "请跟随教程：

1. 请在浏览器访问网址以登录/注册讯飞云账号：https://m.xfyun.cn/login

2. 登录/注册完成后跳转到下列网址进行实名认证：
https://console.xfyun.cn/user/authentication/personal

3. 完成后跳转到下列网址申请应用：
https://console.xfyun.cn/app/create?redirect=%2Fsale%2Fbuy&businessId=bm2&wareId=9042&serviceName=%E6%98%9F%E7%81%AB%E8%AE%A4%E7%9F%A5%E5%A4%A7%E6%A8%A1%E5%9E%8BV2.0&packageId=9042001
申请完成后可获得免费的每年200万tokens数
（API每输出一个中文字符消耗1.5tokens，每输出一个英文字符消耗0.8tokens）

4. 申请完成后转到网页：
https://console.xfyun.cn/services/bm2
在网页左侧选择星火认知大模型>星火大模型（v1.5 / v2.0 / 图片生成）中的任意一项，然后在网页右侧找到APPID、APISecret、APIKey，将其一一复制"
echo "
回车继续
"
read -s ENTER
app_1;;
Y|y|*)app_1;;
esac
deactivate
echo -e "已退出python虚拟环境\n启用会话请使用命令：yunzai-api chat"
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
app_2(){
echo "请按提示输入配置信息，任意一项输入retry均可重新配置"
read -p "请输入APPID：" appid
[ -z $appid ]&&app_2
case $appid in
retry)app_2;;
esac
read -p "请输入APIKey：" apikey
[ -z $apikey ]&&app_2
case $apikey in
retry)app_2;;
esac
echo "正在生成配置文件..."
echo -e "{
    \"appid\": \"$appid\",
    \"key\": \"$apikey\"
}" > $CFG_2
echo "配置完成。"
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
apiapp_2(){ if [ ! -f $FILE_2 ];then yunzai-file opt Youdao_Translation_API $FILE_2_Dir;fi;}
app-2(){
source $pyfs
echo "已进入python虚拟环境。"
echo "正在导入python-requests库..."
if pip install requests -i $pip_repo;then
echo "python-requests库安装成功"
else
echo "python-requests库安装失败，请检查python或其虚拟环境是否被正确安装"
exit
fi
echo "正在导入python脚本..."
mkdir -p $FILE_2_Dir
if apiapp_2;then
echo -e "$FILE_2 导入成功"
else
echo -e "$FILE_2 导入失败"
exit
fi
echo "网易有道翻译API对接脚本部署完成。"
read -p "你是否体验过有道API？[Y/n] " yesno
case $yesno in
N|n)clear;echo "请跟随教程：

1. 请在浏览器访问网址以登录/注册有道智云云账号：
https://ai.youdao.com/login.s

2. 登录/注册完成后在控制台进行实名认证：
https://ai.youdao.com/console/#/

3. 完成后在控制台申请应用：
https://ai.youdao.com/console/#/name-authentication

申请时需勾选文本翻译功能（其他功能根据自身财力选配），服务器IP留空即可

4. 申请完成后在控制台“业务指南=>业务总览”下找到应用ID、应用密钥，将其一一复制"
echo "
回车继续
"
read -s ENTER
app_2;;
Y|y|*)app_2;;
esac
deactivate
echo -e "已退出python虚拟环境\n启用会话请使用命令：yunzai-api fanyi"
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case $1 in
chat|--chat|-chat|-c)
if [ ! -f $FILE_1 ];then
app-1
else
source $pyfs&&echo -e "欢迎使用星火大模型\n发送 help 查看使用方法"&&python $FILE_1&&deactivate
fi;;
fanyi|--fanyi|-fanyi|-f)
if [ ! -f $FILE_2 ];then
app-2
else
source $pyfs&&echo -e "欢迎使用有道翻译\n发送 help 查看使用方法"&&python $FILE_2&&deactivate
fi;;
baike|--baike|-baike|-b)
[ -z $(command -v lynx) ]&&$cmd lynx&&echo "CHARACTER_SET:utf-8" >> /etc/lynx.cfg;[ -z $2 ]&&exit;lynx -dump https://baike.baidu.com/item/$2 | sed -r 's/\[[0-9]{1,3}\]//g;s/\[[0-9]{1,3}\-[0-9]{1,3}\]//g;s/\[resize\,m_lfit\,w_[0-9]{1,5}\,limit_1\]//g;s/\^.$//g;s/\[copy_rignt_[0-9]{1,4}\.png\]//g;/References/,$d;/#alternate alternate alternate alternate/d;s/编辑$//g;s/播报$//g;1,28d;/收藏$/d;/0有用\+1$/d;/0$/d;/播报讨论上传视频$/d'|sed -n -e :a -e '1,12!{P;N;D;};N;ba'|less;;
*)[ ! -z $1 ]&&echo -e "yunzai-api: $1: 未知的选项"
esac
